Edge computing device and method for controlling thereof

ABSTRACT

An edge computing device controlling method includes executing some function modules of a plurality of function modules for processing a service request from a user device on a first edge computing device of a plurality of edge computing devices and additionally executing the some function modules on a second edge computing device of the plurality of edge computing devices when additional resource is required for the some function modules.

CROSS REFERENCE TO RELATED APPLICATIONS AND CLAIM OF PRIORITY

This application claims the benefit of Korean Patent Application No.10-2019-0133964 filed on Oct. 25, 2019 in the Korean IntellectualProperty Office, the disclosure of which is incorporated herein byreference in its entirety.

FIELD

The present disclosure relates to an edge computing device and acontrolling method thereof. More specifically, the present disclosurerelates to an edge computing device, which efficiently use resources ofedges installed in an edge computing environment, and a controllingmethod thereof.

DESCRIPTION OF THE RELATED ART

As the IT infrastructure that enterprises need to manage becomes morecomplex and network traffic grows, enterprises have invested a lot ofmoney for adopting professional and software solutions for monitoringand analyzing network traffic and expanding IT infrastructure foradditional computing power and storage space. To address the increasedmanagement complexity and cost associated with operating thesetraditional on-premise data centers or servers, more and more companiesare turning their on-premises environments into cloud environments.

However, with the exponential growth of companies, general users, anddevices that use cloud services, the amount of data that needs to beprocessed in the cloud server has increased greatly, and the burden ofnetwork fees and network delays occurred through transmission andreception of data due to transferring all data to the cloud and securityissues arising from forwarding all data to a remote cloud server havenewly emerged. Further, services that require real-time data processing,such as services for IoT devices, including connected cars, virtualreality (VR) and augmented reality (AR) services, cannot becommercialized if ultra-low latency communication cannot be guaranteed.However, it is difficult to guarantee ultra-low latency communication ina cloud computing environment where a remote cloud server processes alldata.

Recently, edge computing or fog computing environments, which make upfor the shortcomings of the on-premises and cloud computing environmentsdescribed above, have been in the spotlight. An edge computingenvironment means that computing is performed in an edge device. Cloudcomputing processes all data in a remote data center, while in an edgecomputing environment, data is partially processed in an on-premisesedge located nearby a client device, such as a user device and a sensordevice.

FIG. 1 is a diagram schematically illustrating an edge computingenvironment. In an edge computing environment, at least some of datacollected by user devices 20 a to 20 e or application requests from theuser devices 20 a to 20 e are processed by edges 100 located nearby theuser device 20 a to 20 e. In an edge computing environment, the dataprocessing load of a cloud server 10 may be distributed among severaledges. Further, the problem caused by the network delay between the userdevices 20 a to 20 e and the cloud server 10 can be eliminated, andultra-low delay communication and a real-time service by the edges 100located nearby the user devices 20 a to 20 e can be realized.Furthermore, even when a failure of the cloud server 10 occurs, it ispossible to provide seamless services to the user devices 20 a to 20 eby edges that provide their own computing.

However, unlike cloud computing, which can be flexibly scaled within adata center according to data processing requirements or computingresource needs, edges installed on-premise in the field close to clientdevices have limited computing resources, and there is a limit that itis necessary to visit the site for expansion or reduction of hardware ofedge devices.

Currently, the number of client devices to be connected, the number ofInternet of Things devices or a data transmission period is predicted inadvance, and thereby most edge devices are arranged in the field afterallocating as many applications as they can process to limitedresources. Recently, in order to increase the flexibility of using thecomputing resources of the edge device, methods for remotely accessingthe edge device and distributing the application based on the availableresources remaining in each edge device have been developed andutilized. For example, if the number of certain types of user devicesthat need to be connected to an edge device increases or thetransmission cycles of certain types of user devices shortens, and thusan amount of data to be processed increases, applications for thecertain type of user devices are further distributed to other edgedevices arranged in the field. However, there is a possibility that theconnection or data requests of the user devices are concentrated on aspecific edge device among a plurality of edge devices arranged in thefield, which is difficult to predict in advance. When the data requestsfrom the user devices are concentrated on a specific edge device, thereis no choice but to disperse a data request from the user device byvisiting the site directly to replace the edge device with a high-enddevice or adding an additional edge device nearby the edge device.

SUMMARY

Some embodiments of the present disclosure provide an edge computingdevice, which efficiently use resources of edges installed in an edgecomputing environment, and a controlling method thereof.

Another embodiment of the present disclosure provides an edge computingdevice that can flexibly respond to the increase and decrease of varioustypes of client devices in an edge computing environment and acontrolling method thereof.

Embodiments of the present disclosure are not limited to the embodimentsmentioned above, and other embodiments not mentioned above may beclearly understood by those skilled in the art from the followingdescription.

According to the present disclosure, an edge computing devicecontrolling method is provided. The method comprises executing, on afirst edge computing device of a plurality of edge computing devices,some function modules of a plurality of function modules for processinga service request from a user device, and additionally executing thesome function modules on a second edge computing device of the pluralityof edge computing devices when additional resource is required for thesome function modules.

According to an embodiment, additionally executing the some functionmodules comprises additionally executing the some function modules onthe second edge computing device when processing time spent by the somefunction modules on the first edge computing device exceeds the maximumtime allowed for the some function modules.

According to an embodiment, the second edge computing device is selectedamong the plurality of edge computing devices based on network latencyfrom the first edge computing device.

According to an embodiment, the second edge computing device is selectedby the first edge computing device.

According to an embodiment, additionally executing the some functionmodules on the second edge computing device comprises, updating, by thefirst edge computing device, a routing table that indicates functionmodules executed on each of the plurality of edge computing devices, anddetermining, by the first edge computing device in response to receivinga service request from the user device, one of the plurality of the edgecomputing devices, to which the service request is forwarded forsubsequent processing of the service request based on the routing table.

According to the present disclosure, an edge computing devicecontrolling method is provided. The method comprises executing, on afirst edge computing device of a plurality of edge computing devices, afirst function module for processing a first step of a plurality ofsteps of processing a service request from a user device, executing, ona second edge computing device of the plurality of edge computingdevices, a second function module for processing a second step of theplurality of steps subsequent to the first step, and additionallyexecuting the second function module on at least one of the plurality ofedge computing devices when it is necessary to shorten processing timeof the service request.

According to an embodiment, additionally executing the second functionmodule comprises, additionally executing the second function module ifthe total time spent for processing the service request by the pluralityof edge computing devices exceeds the maximum time allowed forcompletion of processing of the service request.

According to an embodiment, additionally executing the second functionmodule comprises, executing the second function module on the first edgecomputing device if the second function module can be executed using anavailable resource of the first edge computing device.

According to an embodiment, the method further comprises additionallyexecuting a third function module for processing a third step of theplurality of steps subsequent to a second step on the first edgecomputing device.

According to an embodiment, additionally executing the second functionmodule comprises, executing the second function module on a third edgecomputing device if the second function module cannot be executed usingan available resource of the first edge computing device, wherein thethird edge computing device is selected among the plurality of edgecomputing devices that is not executing the second function module, anetwork latency between the first edge computing device and the thirdedge computing device less than a network latency between the first edgecomputing device and the second edge computing device.

According to an embodiment, the third edge computing device is selectedby the first edge computing device.

According to an embodiment, the method further comprises additionallyexecuting a third function module for processing a third step of theplurality of steps subsequent to a second step on the third edgecomputing device.

According to an embodiment, additionally executing the second functionmodule on the third edge computing device comprises, updating, by thefirst edge computing device, a routing table that indicates functionmodules executed on each of the plurality of edge computing devices, andthe method further comprising, determining, by the first edge computingdevice in response to receiving a service request from the user device,one of the plurality of edge computing devices, to which the servicerequest is forwarded for subsequent processing of the service requestbased on the routing table.

According to the present disclosure, a system is provided. The systemcomprises a user device, and a plurality of edge computing devices,wherein a first edge computing device of the plurality of edge computingdevices executes a first function module for processing a first step ofa plurality of steps of processing a service request from the userdevice, wherein a second edge computing device of the plurality of edgecomputing devices executes a second function module for processing asecond step of the plurality of steps subsequent to the first step,wherein a third edge computing device of the plurality of edge computingdevices additionally executes the second function module when it isnecessary to shorten processing time of the service request, wherein anetwork latency between the third edge computing device and the firstedge computing device is less than a network latency between the secondedge computing device and the first edge computing device, wherein oneof the plurality of edge computing devices additionally executes thefirst function module when additional resource is required for the firstfunction module.

BRIEF DESCRIPTION OF THE DRAWINGS

These and/or other aspects will become apparent and more readilyappreciated from the following description of the embodiments, taken inconjunction with the accompanying drawings in which:

FIG. 1 is a diagram for describing an environment, in which an edgecomputing device operates according to an embodiment of the presentdisclosure.

FIG. 2 is a block diagram of an edge computing device according to anembodiment of the present disclosure.

FIGS. 3a and 3b are diagrams for describing exemplary function modulesthat configure an application service provided to user devices by anedge computing device according to some embodiments of the presentdisclosure.

FIGS. 4 and 5 are diagrams for describing an exemplary state of functionmodules executed on a plurality of edge computing devices in an edgecomputing device controlling method according to some embodiments of thepresent disclosure.

FIGS. 6 and 7 are flowcharts for describing an edge computing devicecontrolling method according to another embodiment of the presentdisclosure.

FIG. 8 is a diagram for exemplarily describing function modules executedon a plurality of edge computing devices as a result of performing themethod described with reference to FIGS. 6 and 7.

FIGS. 9 and 10 are flowcharts for describing an edge computing devicecontrolling method according to another embodiment of the presentdisclosure.

FIGS. 11a and 11b are diagrams for exemplarily describing functionmodules executed on a plurality of edge computing devices as a result ofperforming the method described with reference to FIGS. 9 and 10.

DETAILED DESCRIPTION

The present invention will now be described more fully hereinafter withreference to the accompanying drawings, in which preferred embodimentsof the invention are shown. This invention may, however, be embodied indifferent forms and should not be construed as limited to theembodiments set forth herein. Rather, these embodiments are provided sothat this disclosure will be thorough and complete, and will fullyconvey the scope of the invention to those skilled in the art. The samereference numbers indicate the same components throughout thespecification. In the attached figures, the thickness of layers andregions is exaggerated for clarity.

Unless defined otherwise, all technical and scientific terms used hereinhave the same meaning as commonly understood by one of ordinary skill inthe art to which this invention belongs. It is noted that the use of anyand all examples, or exemplary terms provided herein is intended merelyto better illuminate the invention and is not a limitation on the scopeof the invention unless otherwise specified. Further, unless definedotherwise, all terms defined in generally used dictionaries may not beoverly interpreted. The use of the terms “a” and “an” and “the” andsimilar referents in the context of describing the invention (especiallyin the context of the following claims) are to be construed to coverboth the singular and the plural, unless otherwise indicated herein orclearly contradicted by context.

The terms “first,” “second,” “A,” “B,” (a),” and “(b)” are used in thisspecification merely to differentiate an element from another element,not to specify a nature or an order with regard to the element.

Hereinafter, some embodiments of the present disclosure will bedescribed in detail with reference to the accompanying drawings.

FIG. 1 is a diagram for describing an environment, in which an edgecomputing device 100 operates, according to an embodiment of the presentdisclosure.

The edge computing device 100 shown in FIG. 1 may be connected to thecloud 10 and user devices 20 a to 20 e through a network. Compared to aserver 10 located in the cloud, the edge computing device 100 may bearranged at a location physically close to the user devices 20 a to 20e. The edge computing device 100 may be arranged to reduce network delaybetween the user devices 20 a to 20 e and the cloud server 10.

In some embodiments, the edge computing devices 100 may be connected tothe cloud 10 through a wide area network (WAN), a mobile network, or thelike, and the edge computing devices 100 may be connected to the userdevices 20 a to 20 e and/or other edge computing devices 100 through alocal area network (LAN) and a wireless network.

In some embodiments, the edge computing device 100 may process datacollected from the user devices 20 a to 20 e and provide the result tothe cloud server 10. Further, the edge computing device 100 may processan application service request of the user devices 20 a to 20 e andprovide the result to the user devices 20 a to 20 e. The edge computingdevice 100 may provide the intermediate and final results of the dataprocessing as described above to the other edge computing device 100 orforward the application service request.

As shown in FIG. 1, in some embodiments, the edge computing device 100may process different application requests of different types of userdevices 20 a to 20 e. In other words, the edge computing device 100 mayprovide an application service to different types of user devices 20 ato 20 e.

FIG. 2 is a block diagram of an edge computing device 100 in accordancewith an embodiment of the present disclosure. The edge computing device100 includes a network device, such as a router, a switch, an integratedaccess device (IAD). Further, the edge computing device 100 includesvarious industrial devices, such as a computing device for collectingand analyzing the condition of a factory facility and a device formanaging and integrating sensors for monitoring weather conditions.Further, the edge computing device 100 includes home devices, such as ahub device for providing an IoT service and an AI speaker.

The edge computing device 100 may include a communication unit 110, anapplication module execution unit 120, a storage unit 140 and acontroller 150.

The communication unit 110 may send and receive various signals anddata, such as an audio, an image and a sensor measurement value from anexternal device. The communication unit 110 may include a networkcommunication device, such as a wireless communication chip and awired/wireless network adapter.

The application module execution unit 120 executes one or more functionmodules for processing and analyzing data collected from the userdevices 20 a to 20 e or for processing application requests of the userdevices. The application module execution unit 120 may execute aplurality of function modules that perform different functions fordifferent user devices 20 a to 20 e. Further, the application moduleexecution unit 120 may execute two or more modules that perform onefunction simultaneously. For example, by creating two or more instancesof the same function module, requests from two or more user devices 20 ato 20 e for the same function may be processed in parallel.

Referring to FIGS. 3a and 3b , modules for processing applicationservice requests of user devices, which may be executed by theapplication module execution unit 120, will be described. FIGS. 3a and3b exemplarily illustrate function modules for processing each step ofan application service request from a device model A 310 and a devicemodel B 330, respectively.

The device A 310 of FIG. 3a may be, for example, a temperature andhumidity sensor. Data collected from the device A 310 may be received bythe edge computing device 100 and analyzed and processed by anapplication 320. The application 320 may process the application requestof the device A 310 by, for example, three steps, such as datapreprocessing, data analysis and event processing. An application forthe device A 310 may be configured by a function module A1 321, afunction module A2 322 and a function module A3 323, respectively,processing three steps for processing an application request of thedevice A 310. An application request from the device A 310 may beprocessed sequentially by the function modules A1 321 to A3 323.

The device B 330 of FIG. 3b may be, for example, a smart car. Datacollected from the device B 330 may be received by the edge computingdevice 100 and analyzed and processed by an application 340. Theapplication 340 may process an application request of the device B 330by, for example, three steps of noise removal, data processing and dataanalysis. An application for device B 330 may be configured by afunction module B1 341, a function module B2 342 and a function moduleB3 343, respectively, processing three steps for processing anapplication request of the device B 330. An application request from thedevice B 330 may be sequentially processed by the function modules B1341 to B3 343. After the final step of the application request isprocessed by the function module B3 343, the result may be provided tothe device B 330.

In the above description of FIGS. 3a and 3b and the followingdescription, it is described that the application requests of the deviceA 310 and the device B 330 are divided into three steps and areprocessed by three function modules, respectively, however, this ismerely an example for convenience of description. Requests of varioususer devices may be divided into different steps and processed bydifferent numbers of function modules.

Referring to FIG. 2 again, the storage unit 140 of the edge computingdevice 100 will be described.

The storage unit 140 stores various data commands and/or information.The storage unit 140 may store one or more programs for providing anedge computing controlling method according to embodiments of thepresent disclosure. Further, the storage unit 140 may store executablefiles, binaries, source codes, and the like of function modules (e.g.,modules A1 to A3 of FIG. 3a and modules B1 to B3 of FIG. 3b ) that maybe executed by the application module execution unit 120. Further, thestorage unit 140 may store data provided by the user devices 20 a to 20e and processed results thereof. The storage unit 140 may temporarily ornon-temporarily store data transmitted from an external device or inputby a user or an operation result of the controller 150. The storage unit140 may include a nonvolatile memory, such as a read only memory (ROM),an erasable programmable ROM (EPROM), an electrically erasableprogrammable ROM (EEPROM), a flash memory, a hard disk, a removabledisk, an SD memory card or any type of computer-readable recordingmedium well known in the art, to which the present disclosure belonging.

The controller 150 controls the overall operation of each component ofthe edge computing device 100. The controller 150 may be configured toinclude a central processing unit (CPU), a micro-processor unit (MPU), amicro controller unit (MCU), a mobile processor, or any type ofprocessor well known in the art of the present disclosure. Further, thecontroller 150 may perform operations on at least one application orprogram for executing a method according to embodiments of the presentdisclosure.

More specifically, the controller 150 may include a module manager 152,a network monitoring unit 154, a routing controller 156 and a resourcemonitoring unit 158.

The module manager 152 may control the application module execution unit120 to execute at least some of the function modules (e.g., modules A1to A3 of FIG. 3a and modules B1 to B3 of FIG. 3b ) stored in the storageunit 140. The module manager 152 may transmit a message through thecommunication unit 110 to request other edge computing device 100 toadditionally execute the function module. The module manager 152 maydetermine whether to execute additional function modules with theavailable resources of the edge computing device 100. When the edgecomputing device 100 receives a request for additional execution of afunction module or resource confirmation request from the cloud server10 or other edge computing device 100, the module manager 152 may replyabout whether to able to perform the request and the performing resultthrough the communication unit 110.

The module manager 152 may manage and record a list of function modules(e.g., modules A1 to A3 of FIG. 3a and modules B1 to B3 of FIG. 3b )required to perform an application request of the user device. Further,the module manager 152 may manage and record information regarding themaximum value of time allowed for processing of each function moduleprocessing each step of the application request. Further, the modulemanager 152 may manage and record the maximum value of the total timeallowed for completing the processing of all steps of the applicationrequest. Table 1 below shows an example of recording the maximum valueof time allowed for processing each step of an application request ofthe user device A and the user device B, and the maximum value of timeallowed for processing all the steps.

TABLE 1 Step 1 Step 2 Step 3 Total Time Device Model  8 ms 15 ms 9 ms 80ms A Device Model 14 ms 25 ms 6 ms 60 ms B

The network monitoring unit 154 may monitor and record network latencybetween the edge computing devices 100. As exemplarily shown in Table 2below, the network monitoring unit 154 may record a latency table, inwhich the network latency between itself and all other edge computingdevices is calculated, in the storage unit 140. Furthermore, in someembodiments, the network monitoring unit 154 may receive data aboutnetwork latency between all other edge computing devices from the otheredge computing devices and record the data in the storage unit 140.

TABLE 2 Edge 1 Edge 2 Edge 3 Edge 1  0 ms 10 ms 32 ms Edge 2 10 ms  0 ms 8 ms Edge 3 32 ms  8 ms  0 ms

Network latency can be calculated by various methods suitable for theenvironment and application, to which embodiments of the presentdisclosure apply. For each of the other edge computing devices, any oneof the averages of the network latency, the average of the networklatency over the last specific time and the network latency in the finaldata transmission and reception can be selected and recorded andutilized as the network latency to the corresponding edge computingdevice.

The routing controller 156 controls the forwarding of the applicationrequest and its intermediate processing result in order to complete theapplication service request of the user devices 20 a to 20 e. Morespecifically, the routing controller 156 determines other edge computingdevice 100, to which the application request is forwarded, to processall or some of the application request received by the edge computingdevice 100 from the user device or the other edge computing device 100and forwards the application request and the intermediate processingresult through the communication unit 110. To this end, the routingcontroller 156 may record a routing table including the current statusof the function modules, which each of the plurality of edge computingdevices 100 is executing, in the storage unit 140. Table 3 below is anexemplary routing table recording the current status of the modules,which each of the three edge computing devices (edges 1 to 3) isexecuting.

TABLE 3 Module A1 Module A2 Module A3 Edge 1 YES NO YES Edge 2 YES YESNO Edge 3 YES NO YES

In some embodiments, the routing controller 156 may determine asubsequent edge computing device 100, to which the application requestis forwarded, to process subsequent steps of the application requestreceived by the edge computing device 100. In this case, the subsequentedge computing device 100 may be determined, for example, based on thelatency table shown in Table 2 above and the routing table shown inTable 3 above. It is assumed that after completion of processing thesecond step of the application request by edge 2, the subsequent stepshould be processed by module A3. The routing controller 156 of the edge2 may identify the edge 1 and the edge 3 executing the module A3 withreference to the routing table as shown in Table 3 above. Subsequently,the routing controller 156 of edge 2 may determine edge 3 (see latencytable of Table 2 above) having the shorter network latency from edge 2among edge 1 and edge 3 as the subsequent edge computing device 100 andforward the application request.

The resource monitoring unit 158 monitors and records availableresources of the edge computing device 100. The resource monitoring unit158 may monitor the available memory, the available processing time, theavailable storage capacity, and the like of the edge computing device100 in real-time. The resource monitoring unit 158 may provideinformation about the available resources of the edge computing device100 to other components of the edge computing device 100, such as themodule manager 152.

So far, the functional configuration of the edge computing device 100according to an embodiment of the present disclosure has been described.In the following, edge computing device controlling methods according tosome other embodiments of the present disclosure will be described.

FIGS. 4 and 5 illustrate an exemplary state of function modules executedon a plurality of edge computing devices 400 a, 400 b and 400 c in anedge computing device controlling method according to some embodimentsof the present disclosure. The three edge computing devices 400 a, 400 band 400 c shown in FIGS. 4 and 5 may be edge computing devices arrangedat physically spaced locations.

FIG. 4 illustrates that all modules configuring an application 320 forprocessing a request of device A (modules A1 to A3) and all modulesconfiguring an application for processing a request of device B (modulesB1 to B3) are distributed and executed on the edge computing devices(400 a, 400 b and 400 c). When the modules are distributed and beingexecuted as shown in FIG. 4, the request of the user device (devices Aand B) is processed, for example, by any one of the edge computingdevices 400 a, 400 b and 400 c alone that is closest to thecorresponding user device. However, if too many devices A are introducedinto one edge computing device, for example, edge 2 400 b, the serviceof device A can be concentrated on only edge 2 400 b among the edgecomputing devices 400 a, 400 b and 400 c. If such a situation persists,it may exceed the data throughput that can be processed by the limitedresources provided at edge 2 400 b, which may cause a service delay fordevice A. If a situation that a request of a specific device isconcentrated on one edge 2 400 b and the service is delayed persists,the corresponding edge 2 400 b should be replaced with a device havinghigher performance or edge computing devices should be added near theedge 2 400 b. This requires a service provider to invest time and money.

FIG. 5 illustrates an exemplary initial execution state of functionmodules in a plurality of edge computing devices 400 a, 400 b and 400 cto describe an edge computing device controlling method, in whichexecution of function modules is dynamically adjusted, according to someembodiments of the present disclosure. According to the presentembodiment, function modules for processing each step of an applicationrequest of a user device are distributed to a plurality of edgecomputing devices 400 a, 400 b, and 400 c and selectively executed, andwhether to execute each module in each device can be adjusteddynamically.

In the exemplary initial execution state shown in FIG. 5, modules shownwith the border of a thick solid line are executing on a correspondingedge computing device, and modules shown with the border of a dottedline are modules not executing on the corresponding edge computingdevice. For example, in FIG. 5, at edge 1 400 a, module A1 321 a andmodule B1 341 a are executing, while other modules (modules A2, A3,modules B2, B3) are not executing. Further, at edge 2 400 b, module A2322 b and module B2 342 b are executing, and other modules (modules A1,A3, modules B1, B3) are not executing. Unlike the state shown in FIG. 4,each of the edge computing devices 400 a, 400 b and 400 c shown in FIG.5 is executing only some of the modules for processing an applicationrequest of device A or device B, respectively.

In the exemplary initial execution state shown in FIG. 5, edge 1 400 aexecutes only module A1 321 a for device A and module B1 341 a fordevice B. When edge 1 400 a receives an application request from deviceA located near edge 1 400 a, edge 1 400 a processes the first step ofthe request by module A1 321 a that is being executed by edge 1 400 a.The routing controller 156 of edge 1 400 a may then refer to the routingtable to determine the edge computing device that is executing module A2to process the second step of the request. The request is forwarded toedge 2 400 b and the second step is processed by module A2 322 b, andthen forwarded to edge 3 400 c and the final third step is processed bymodule A3 323 c.

In the exemplary initial execution state shown in FIG. 5, edge 2 400 bexecutes only module A2 322 b for device A and module B2 342 b fordevice B. If edge 2 400 b receives an application request from device Alocated near edge 2 400 b, edge 2 400 b determines an edge computingdevice executing module A1 to process the first step of the request. Therequest that edge 2 400 b receives from device A is forwarded to edge 1400 a, and the request is processed by module A1 321 a of edge 1 400 a,module A2 322 b of edge 2 400 b and module A3 323 c of edge 3 400 csequentially.

Similarly, when edge 3 400 c receives an application request from nearbydevice B, it is forwarded to edge 1 400 a executing module B1 to processthe first step of the request, and then forwarded to edge 2 400 b andedge 3 400 c sequentially to complete the processing of the request.

In this embodiment, at each step, in which a request from device A ordevice B is processed by respective edge computing devices 400 a to 400c, a control message may be recorded and added to the request. Thecontrol message for each request includes the type of device whooriginally sent the request, the identifier of the edge computing devicethat received the corresponding request from the device, the module thatprocessed each step of the corresponding request and the processing timeand the total time spent to complete the request processing (thisincludes the network latency occurred during the process of forwardingthe corresponding request between the edge computing devices). Tables 4to 6 below are examples of control messages recorded during processingrequests from device A, device A and device B, respectively.

TABLE 4 Device Start First Second Third Total Model Edge Step Step StepTime Device A Edge 2 Edge 1 Edge 2 Edge 3 54 ms (7 ms) (12 ms) (7 ms)

TABLE 5 Device Start First Second Third Total Model Edge Step Step StepTime Device A Edge 1 Edge 1 Edge 2 Edge 3 62 ms (18 ms) (15 ms) (11 ms)

TABLE 6 Device Start First Second Third Total Model Edge Step Step StepTime Device B Edge 3 Edge 1 Edge 2 Edge 3 89 ms (13 ms) (20 ms) (6 ms)

The control message of Table 4 above shows that a service request fromdevice A was received by edge 2 400 b, the request was forwarded to edge1 400 a, and it took 7 ms for the first step to be processed by moduleA1 321 a of edge 1 400 a, and it was forwarded to edge 2 400 b and took12 ms for the second step to be processed by module A2 322 b, and it wasforwarded to edge 3 400 c and took 7 ms for the third step to beprocessed by module A3 323 c, and the total of 54 ms was taken toprocess the request including the network time caused by forwarding therequest from edge 2 400 b to edge 1 400 a, from edge 1 400 a to edge 2400 b, and from edge 2 400 b to edge 3 400 c. In short, the request fromthe device A took 7 ms for processing the first step, 12 ms forprocessing the second step, and 7 ms for processing of the third step,and the total time for processing the request was 54 ms.

The processing time of each step of the request and the total timesatisfy all of the maximum allowable time for processing requests fromdevice A (see Table 1 described above). Therefore, in this case,selectively allocating the execution of modules A1 to A3 for processingeach step of the request of the device A to the edge 1 400 a to the edge3 400 c as shown in FIG. 5 caused no problem.

Meanwhile, the control message shown in Table 5 indicates that theservice request from another device A was received by edge 1 400 a, andit took 18 ms for the first step to be processed by module A1 321 a ofedge 1 400 a, and it took 15 ms for the second step to be processed bymodule A2 322 b of edge 2 400 b, and it took 11 ms for the third step tobe processed by module A3 323 c of edge 3 400 c, and the total of 62 mswas taken including the network time.

Comparing this with the maximum value of the time allowed for processingthe request from the device A shown in Table 1 described above, it took18 ms exceeding 8 ms, which is the maximum time allowed for processingthe first step, and it took 11 ms exceeding 9 ms, which is the maximumtime allowed for processing the third step. That is, the processing ofthe first and third steps is delayed in the processing of the request.This example may imply that a service request, which exceeds the amountof data that module A1 321 a of edge 1 400 a that processed the firststage and module A3 323 c of edge 3 400 c that processed the third stagecan process, respectively, is introduced. That is, it may imply thatadditional resource for the processing of the modules A1 and A3 isrequired. A method of inputting additional resources for the modules tocope with such a situation will be described later with reference toFIGS. 6 to 8.

Meanwhile, the control message shown in Table 6 indicates that theservice request from device B was received by edge 3 400 c, and it took13 ms for the first step to be processed by module B1 341 a of edge 1400 a, and it took 20 ms for the second step to be processed by moduleB2 342 b of edge 2 400 b, and it took 6 ms for the third step to beprocessed by module A3 343 c of edge 3 400 c, and the total of 89 ms wastaken including the network time.

Comparing this with the maximum value of the time allowed for processingthe request from the device B shown in Table 1 described above, althoughthe processing of each step was completed within the maximum timeallowed for each of the first to third steps, it took 89 ms exceeding 60ms, which is the maximum value of the total time allowed for processingthe request from the device B. This is because too much network delay isoccurred from sequentially forwarding the request received by edge 3 400c from the device B from edge 3 400 c to edge 1 400 a, edge 2 400 b andedge 3 400 c. Such an example may imply that when the request of deviceB is distributed to edge 1 400 a to edge 3 400 c and processed by themstep by step, it is necessary to optimize the processing path of therequest to reduce the network delay time. A method of optimizing therequest processing path to cope with such a situation will be describedlater with reference to FIGS. 9 to 11 b.

Hereinafter, an edge computing device controlling method according toanother embodiment of the present disclosure will be described withreference to FIGS. 6 to 8. In particular, through this embodiment, amethod of inputting additional resources for some function modules willbe described.

The edge computing device controlling method according to the presentembodiment may be performed in a computing device. For example, thecomputing device may be the edge computing device 100 described withreference to FIGS. 1 and 2 or the edge computing devices 400 a to 400 cdescribed with reference to FIGS. 4 and 5. In interpreting the edgecomputing device controlling method according to the present embodiment,the embodiments described with reference to FIGS. 1, 2, 4, and 5 may bereflected. Hereinafter, when the subject of each operation included inthe edge computing device controlling method according to the presentembodiment is omitted, the subject may be interpreted as a computingdevice.

FIGS. 6 and 7 are flowcharts for describing an edge computing devicecontrolling method according to the present embodiment. FIG. 8 is adiagram for exemplarily describing function modules executed on aplurality of edge devices as a result of performing the method describedwith reference to FIGS. 6 and 7.

In the following description of this embodiment, it is assumed that acomputing environment is equipped with three edge computing devices 400a to 400 c. Further, it is assumed that the initial state of the modulesexecuted on the edge computing devices 400 a, 400 b and 400 c is thesame as FIG. 5. Further, it is assumed that the time allowed forprocessing the application request of the user device A is the same asTable 1 above, and the network latency between the three edge computingdevices (edge 1 400 a to edge 3 400 c) is the same as Table 2 above.

First, it will be described with reference to FIG. 6. At step S600,respective modules initially allocated to each edge of the plurality ofedges are executed. As a result of performing step S600, for example, asillustrated in FIG. 5, some of the function modules for user devices Aand B may be executed on the plurality of edge computing devices 400 a,400 b, and 400 c, respectively.

At step S610, an application service request from any one user device isprocessed by modules executed on a plurality of edges. For example, anapplication service request from any user device A located near edge 1400 a is received by edge 1 400 a and the first step is processed bymodule A1 321 a of edge 1 400 a, forwarded to edge 2 400 b and thesecond step is processed by module A2 322 b of edge 2 400 b, andforwarded to edge 3 400 c and the third step is processed by module A3323 c of edge 3 400 c.

At step S620, the time spent by each of the modules A1 to A3 forprocessing the first to third steps of the request is identified througha control message recorded during processing the application request.Step S620 may be performed by edge 3 400 c, which processed the finalstep of the request. For purposes of description, it is assumed herethat the control message is the same as the one shown in Table 5 above.

At step S630, it is determined whether or not the maximum time allowedfor each module for processing each step is exceeded, and it isdetermined whether there exists a delayed module. Comparing the controlmessage shown in Table 5 with the maximum allowable time shown in Table1, the processing time of the modules A1 and A3 (18 ms and 11 ms,respectively) processing the first and third steps exceeds the maximumallowable time (8 ms and 9 ms, respectively). Therefore, it can bedetermined that the processing of the modules A1 and A3 is delayed, andthe modules A1 and A3 are identified as the delayed modules.

At step S640, delayed modules A1 and A3 are additionally executed. Amethod of additionally executing the delayed module will be described indetail with reference to FIG. 7.

At step S641, the first edge, on which the delayed module is executed,is identified. For example, with reference to the control message ofTable 5, edge 1 400 a, which processed the first step by module A1, andedge 3 400 c, which processed the third step by module A3, areidentified. The process of additionally executing module A1 will bedescribed first, and the process of additionally executing module A3will be described thereafter.

At step S642, it is determined whether the module A1 can be additionallyexecuted on the edge 1 400 a, on which the module A1 is executing. Insome embodiments, the module manager 152 of the edge 1 400 a maydetermine whether module A1 can be additionally executed on the edge 1400 a based on the status of available resource within the edge 1 400 awhich is provided by the resource monitoring unit 158 of the edge 1 400a.

If it is determined that the module A1 cannot be additionally executedusing the available resources within the edge 1 400 a, the modulemanager 152 of the edge 1 400 a selects a candidate of the second edgecapable of executing the module A1 at step S644. In some embodiments,the candidate of the second edge may be selected giving priority to anedge with low network latency from edge 1 400 a. This is because thelower the network latency from the edge 1 400 a is, the better edge itis for dividing up the execution of the module A1 for the applicationrequest flowing into the edge 1 400 a. If the network latency betweenthe second edge and the edge 1 400 a is high, due to the network delayoccurred while forwarding the service request flowing into the edge 1400 a to the second edge, the total time required for processing theservice request may be increased, which may cause an obstacle inproviding services, where real-time data processing based on ultra-lowdelay communication is essential.

If the network latency between edge 1 400 a, edge 2 400 b and edge 3 400c is as shown in Table 2 above, among edge 2 400 b and edge 3 400 c,edge 2 400 b with lower network latency from edge 1 400 a may beconsidered as a first candidate for a second edge.

At step S645, it is determined whether the candidate for the second edgeselected at step S644 can execute the module A1. The candidate for thesecond edge may determine whether the module A1 is executable based onits available resource status and provide the result of suchdetermination to edge 1 400 a.

Although not shown, if it is determined at step S645 that none of thecandidates for the second edge can additionally execute the module A1,the result of such determination is provided to the cloud server 10 sothat the cloud server 10 process some of the requests of the device A.

When the module A1 is executable with the available resources of thecandidate for a second edge, the second edge is decided, and the moduleA1 is executed on the second edge (step S646). For example, when themodule A1 is executable with the available resources of the edge 2 400b, the module manager 152 of the edge 2 400 b causes the applicationmodule execution unit 120 of the edge 2 400 b to create an instance formodule A1 and execute module A1.

The result of this execution can be more clearly understood withreference to edge 2 400 b of FIGS. 5 and 8. Similar to FIG. 5, modulesillustrated with solid thick border lines in FIG. 8 are executing on thecorresponding edge computing device, and modules illustrated with dottedborder lines are modules not executing on the corresponding edgecomputing device.

Although module A1 321 b is not executing on edge 2 400 b shown in FIG.5, edge 2 400 b shown in FIG. 8 is changed to a state, in which moduleA1 321 b is executing. As a result, the first step of the applicationservice request from device A may be processed by both edge 1 400 a andedge 2 400 b. That is, since the available resources of the edge 2 400 bare efficiently utilized and the processing load of the edge 1 400 a isdistributed to the edge 2 400 b, the delay occurred during theprocessing of the first step of the application service request from thedevice A can be eliminated.

Returning back to step S641, the process of additionally executingmodule A3 will be described. At step S641, for example, edge 3 400 c, onwhich the delayed module A3 is executing, is identified by referring tothe control message shown in Table 5 above. At step S642, for example,it is determined whether module A3 can be additionally executed on edge3 400 c based on the available resource status of edge 3 400 c. If it isdetermined that the module A3 can be additionally executed using theavailable resources of the edge 3 400 c, the module manager 152 of theedge 3 400 c causes the application module execution unit 120 of theedge 3 400 c to further create an instance for the module A3 andadditionally execute the module A3 (step S643). As a result, at edge 3400 c, two instances for the module A3 are executed.

The result of this execution can be more clearly understood withreference to edge 3 400 c of FIGS. 5 and 8. One instance for module A3is executing on edge 3 400 c shown in FIG. 5 (323 c), while twoinstances for module A3 are executing on edge 3 400 c shown in FIG. 8(323 c and 323 c-1). That is, the resources available on edge 3 400 care further utilized in order to create an additional instance formodule A3, thereby the processing throughput for the third step of theapplication service request of device A can be increased, and the delayoccurred during the processing of the third step can be eliminated.

After identifying delayed modules at step S630 of FIG. 6 areadditionally executed on step S640, at step S650 of FIG. 6, the routingtable of each edge 400 a, 400 b and 400 c can be updated by reflectingthe additional execution of the delayed modules.

So far, the edge computing device controlling method according to anembodiment of the present invention has been described with reference toFIGS. 6 to 8. In particular, with the present embodiment, it has beendescribed that a method for additionally executing a delayed module on aproper device among the plurality of edge computing devices 400 a, 400 band 400 c in order to add more resources in execution of the delayedmodule. It has also been described that the proper device may beselected in consideration of network latency. It will be understood thatby the method, modules executing on the plurality of edge computingdevices 400 a, 400 b and 400 c can be dynamically adjusted as theservice request from the user device increases. Further, it will beunderstood that the above method facilitates the provision of services,such as connected cars, IoT, VR and AR, where real-time data processingbased on ultra-low delay communication is essential. Furthermore, itwill be understood that the method may be performed by interaction amonga plurality of edge computing devices 400 a, 400 b and 400 c without thecontrol of a central system, such as a cloud server.

Hereinafter, an edge computing device controlling method according toanother embodiment of the present disclosure will be described withreference to FIGS. 9 through 11 b. In particular, through thisembodiment, a method of optimizing the processing path of an applicationrequest from a device will be described.

The edge computing device controlling method according to the presentembodiment may be performed in a computing device. For example, thecomputing device may be the edge computing device 100 described withreference to FIGS. 1 and 2 or the edge computing devices 400 a to 400 cdescribed with reference to FIGS. 4 and 5. In interpreting the edgecomputing device controlling method according to the present embodiment,the embodiments described with reference to FIGS. 1, 2, 4, and 5 may bereflected. Hereinafter, when the subject of each operation included inthe edge computing device controlling method according to the presentembodiment is omitted, the subject may be interpreted as a computingdevice.

FIGS. 9 and 10 are flowcharts for describing an edge computing devicecontrolling method according to the present embodiment. FIGS. 11a and11b are diagrams for exemplarily describing function modules executed ona plurality of edge devices as a result of performing the methoddescribed with reference to FIGS. 9 and 10.

In the following description of this embodiment, it is assumed that acomputing environment is equipped with three edge computing devices 400a to 400 c. Further, it is assumed that the initial state of the modulesexecuted on the edge computing devices 400 a, 400 b and 400 c is asshown in FIG. 5. Further, it is assumed that the time allowed forprocessing the application request of the user device B is as shown inTable 1, and it is assumed that the network latency between the threeedge computing devices (edge 1 400 a to edge 3 400 c) is as shown inTable 2 above.

First, it will be described with reference to FIG. 9. At step S900,respective modules initially allocated to each of the plurality of edgesare executed. As a result of performing step S900, for example, asillustrated in FIG. 5, some of the function modules, for example, foruser devices A and B may be executed on the plurality of edge computingdevices 400 a, 400 b and 400 c, respectively.

At step S910, application service requests from any one user device areprocessed by modules executed on a plurality of edges. For example, anapplication service request from any user device B located near edge 3400 c is received by edge 3 400 c. Since the module B1 for processingthe first step of the application service request from the user device Bis not being executed on the edge 3 400 c, the request is forwarded tothe edge 1 400 a by the routing controller 156 of the edge 3 400 c.Subsequently, the first step of the request is processed by module B1341 a of edge 1 400 a, the request is forwarded to edge 2 400 b, and thesecond step is processed by module B2 342 b of edge 2 400 b, and thenthe request is forwarded to edge 3 400 c and the third step is processedby module B3 343 c of edge 3 400 c.

At step S920, the total time required for processing the request isidentified through a control message recorded during processing theapplication request. Step S920 may be performed by the edge 3 400 c,which processed the final step of the request. For purposes ofdescription, it is assumed here that the control message is the same asthe one shown in Table 6 above.

At step S930, it is determined whether the total time spent forprocessing the request exceeds the maximum time allowed for processingthe request of the user device B. Comparing the control message shown inTable 6 with the maximum allowable time exemplarily described in Table 1above, since each of the first to third steps was processed within theallowable time described in Table 1, respectively, it indicates that theprocessing by each of the modules B1 to B3 was not delayed. However, thetotal time spent for processing the request (89 ms) exceeded the maximumtotal time shown in Table 1 (80 ms). This implies that there was nodelay in the operation of the modules B1 to B3 each processing the firstto third steps, but too much network delay has occurred while therequest received by the edge 3 400 c from the device B being forwardedfrom the edge 3 400 c to the edge 1 400 a, edge 2 400 b and edge 3 400 csequentially. As in the example of the control message shown in Table 6above, if the total time spent for processing the request exceeds theallowed maximum value, it is determined that the processing of therequest is delayed.

At step S940, optimization of the processing path for the applicationservice request from the user device B is performed, which will bedescribed in detail with reference to FIG. 10

Referring to step S941 of FIG. 10, the edge who first received thedelayed request from the device is identified. Referring back to Table6, edge 3 400 c can be identified, which received the request from thedevice and started processing of the request.

At step S942, it is determined whether there is a missing module thatthe edge 3 400 c is not executing. Looking at the missing module limitedto the modules for processing the application request of the user deviceB, as shown in FIG. 5, the module B3 343 c is executing on the edge 3400 c, the remaining modules B1 and B2 are not being executed. That is,modules B1 and B2 can be identified as missing modules. If at least someof the missing modules B1 and B2 not executing on edge 3 400 c can beadditionally executed on edge 3 400 c, the number of times a request isforwarded between the edges during the processing of the requestreceived by the edge 3 400 c from the device may decrease.

At step S943, it is determined whether the missing module B1 isexecutable on edge 3 400 c. In some embodiments, the module manager 152of the edge 3 400 c may determine if missing module B1 can beadditionally executed on edge 3 400 c based on the status of availableresource within the edge 3 400 c which is provided by the resourcemonitoring unit 158 of the edge 3 400 c.

According to the result of the determination, the missing module B1 isexecuted on edge 3 400 c (step S944).

Although not shown in FIG. 10, steps S943 to S944 may be repeatedlyperformed for all missing modules of the edge 3 400 c. That is, formodule B2 determined as the missing module of edge 3 400 c at step S942,it is determined whether it is executable on edge 3 400 c, and themissing module B2 can be additionally executed according to the result.

The result of the execution of steps S942 to S944 can be more clearlyunderstood with reference to edge 3 400 c of FIGS. 5 and 11 a. In FIGS.11a and 11b to be described later, modules shown with thick solid borderlines are executing on the corresponding edge computing device, andmodules shown with dotted border line are modules not executing on thecorresponding edge computing device.

Although the module B1 341 c and the module B2 342 c are not executingon the edge 3 400 c shown in FIG. 5, the edge 3 400 c shown in FIG. 11ais changed to the state, in which these modules are executing. As aresult, when edge 3 400 c receives an application service request fromuser device B, it does not forward the request to edge 1 400 a and/oredge 2 400 b for processing of some steps of the request. Instead, edge3 (400 c) can process all steps of the request. In other words, byeliminating the network delay occurred in forwarding the applicationrequest between the edges, the total time required for processing arequest can be shortened. As a result, the processing of the requestfrom the user device B can be completed within 60 ms, which is themaximum total time allowed for the processing of the request from theuser device B.

Referring back to FIG. 10, at step S943, the case, where it isdetermined that edge 3 400 c cannot execute module B1, will bedescribed.

At step S945, the module manager 152 selects a candidate for the secondedge capable of executing the missing module B1. In the presentembodiment, a candidate for the second edge is selected by givingpriority to an edge with low network latency from edge 3 400 c. In orderto shorten total network delay between the edges in the processing ofthe application request of the device B flowing into the edge 3 400 c,it is better to select an edge with a lower network latency from theedge 3 400 c. If the network latency between edge 1 400 a, edge 2 400 band edge 3 400 c is as shown in Table 2 above, among edge 1 400 a andedge 2 400 b, edge 2 400 b with lower network latency from edge 3 400 cmay be considered as a first candidate for a second edge.

At step S946, it is determined whether the candidate for the second edgeselected at step S945 can execute missing module B1. The candidate forthe second edge may determine whether the missing module B1 isexecutable based on its available resource status and provide result ofsuch determination to the edge 3 400 c.

Although not shown, if it is determined at step S946 that none of thecandidates for the second edge can additionally execute the missingmodule B1, such determination result is provided to the cloud server 10so that the cloud server 10 may process some of the service request ofthe device B.

When the missing module B1 is executable with the available resources ofthe candidate for the second edge, the second edge is decided, and themissing module B1 is executed on the second edge (step S947). Forexample, when the missing module B1 can be executed with the availableresources of the edge 2 400 b, the module manager 152 of the edge 2 400b causes the application module execution unit 120 of the edge 2 400 bto create an instance for module B1 and execute module B1 (step S947).

Although not shown in FIG. 10, steps S945 to S947 may be repeatedlyperformed for the module B2 determined as the missing module of the edge3 400 c at step S942.

The result of the execution of steps S945 to S947 regarding the case,where it is determined that the edge 3 400 c cannot execute the moduleB1 and the module B2 at step S943 can be more clearly understood withreference to the edge 2 400 b of FIGS. 5 and 11 b. At the edge 2 400 bshown in FIG. 5, only the module B2 342 b is executing, but at the edge2 400 b shown in FIG. 11b , it is changed to the state, in which themodule B1 341 b and the module B2 342 b are executing. As a result, whenedge 3 400 c receives an application service request from user device B,the request is forwarded to edge 2 400 b (it takes 8 ms when referringto Table 2). The request is forwarded back to edge 3 400 b after thefirst and second steps are processed by modules B1 341 b and B2 342 bexecuting on edge 2 400 b (it takes 8 ms). The third step of the requestis processed by module B3 343 c executing on edge 3 400 c. As such, theprocessing path of the application service request from the user deviceB is changed, thereby the network latency caused by the forwarding ofrequests between the edges is reduced and the processing of the requestfrom the user device B can be completed within 60 ms, which is themaximum total time allowed for processing of the request from the userdevice B.

As described above, after additionally executing some modules throughsteps S941 to S947 of FIG. 10, the process of optimizing a path forprocessing a request of a user device is performed. And then, at stepS950 of FIG. 9, the routing table of each edge 400 a, 400 b and 400 ccan be updated by reflecting additional execution of some modules.

So far, the edge computing device controlling method according to anembodiment of the present disclosure has been described with referenceto FIGS. 9 to 11 b. By the above method, in order to satisfy the maximumlatency allowed by the user device in the process of distributing andprocessing the service request from the user device by the plurality ofedge computing devices 400 a, 400 b and 400 c, modules executing on theplurality of edge computing devices 400 a, 400 b and 400 c can bedynamically adjusted. In other words, by additionally executing somemodules in a proper device that causes minimal network latency among theplurality of edge computing devices 400 a, 400 b and 400 c, theprocessing path of the request from the user device can be optimized. Bythe above method, it will be understood that the provision of services,such as connected cars, IoT, VR, and AR, where real-time data processingbased on ultra-low delay communication is essential, can be facilitated.Furthermore, it will be understood that the method may be performedmerely by interaction between a plurality of edge computing devices 400a, 400 b and 400 c without the control of a central system, such as acloud server.

Embodiments of the present disclosure described so far with reference toFIGS. 1 through 11 b may be implemented in a computer-readable code on acomputer-readable medium. The computer-readable recording medium may be,for example, a removable recording medium (CD, DVD, Blu-ray disc, USBstorage device, removable hard disk) or a fixed recording medium (ROM,RAM, computer equipped hard disk). The computer program recorded on thecomputer-readable recording medium may be transmitted to other computingdevice via a network such as the Internet and installed in the othercomputing device, thereby being used in the other computing device.

Hereinafter, a configuration of an exemplary computing device capable ofimplementing an edge computing device according to various embodimentsof the present disclosure will be described.

A computing device capable of implementing a system according to variousembodiments of the present disclosure may include a processor, a memory,a network interface, a storage and a system bus connecting theprocessor, the memory, the network interface and the storage.

The storage may store a communication module, an application executionmodule and a control module. Each of the modules is software thatoperates separately, and the binary is loaded into a memory and thenexecuted at a processor, so that the computing device performs dataprocessing and control related operations.

In the above description, it is described that all the componentsconstituting the embodiments of the present disclosure are combined oroperated as one, but the technical features of the present disclosureare not limited to these embodiments. That is, within the scope of thepresent disclosure, all of the components may be selectively combinedand operated in one or more combinations.

Although the operations are shown in a specific order in the drawings,it should not be understood that the operations must be performed in thespecific order or sequential order shown, or that all the illustratedoperations must be executed to achieve the desired results. In certaincircumstances, multitasking and parallel processing may be advantageous.Moreover, the separation of the various configurations in theembodiments described above should not be understood as requiring thatseparation, and it should be understood that the described programcomponents and systems may generally be integrated together into asingle software product or packaged into multiple software products.

In concluding the detailed description, those skilled in the art willappreciate that many variations and modifications can be made to thepreferred embodiments without substantially departing from theprinciples of the present invention. Therefore, the disclosed preferredembodiments of the invention are used in a generic and descriptive senseonly and not for purposes of limitation.

What is claimed is:
 1. A system comprising: a user device comprising ahardware device; a cloud; a plurality of edge computing devicesconnected to the cloud, the plurality of edge computing devicesphysically spaced from and wireless-connected to each other to process aservice request from the user device, each edge computing devicecomprising: an application module execution unit to execute functionmodules comprising a first function module and a second function module;a controller to control the application module execution unit; acommunication unit to communicate with the other edge computing devices;and a storage unit to store executable files of the function modules,wherein the plurality of edge computing devices are controlled by thecontroller of a first edge computing device among the plurality of edgecomputing devices; the service request is received at the first edgecomputing device among the plurality of edge computing devices, and theservice request is to be processed through a plurality of stepscomprising a first step and then a second step; the first edge computingdevice has a routing table that indicates function modules executed oneach of the plurality of edge computing devices, and the first edgecomputing device first-selects an edge computing device having the firstfunction module which is indicated as being executed on the routingtable, among the plurality of edge computing devices; the first functionmodule of the first-selected edge computing device performs the firstprocess; the first selected edge computing device second-selects an edgecomputing device having the second function module which is indicated asbeing executed on the routing table, among the plurality of edgecomputing devices; the first-selected edge computing device transmitsthe service request and a first processed result to the second-selectededge computing device; and the second function module of thesecond-selected edge computing device performs the second process,wherein the system identifies a delayed module by determining if aprocessing time to complete the first process and a processing time tocomplete the second process is over a preset time allowed for processingthe first process and a preset time allowed for processing the secondprocess, respectively, and determining if a total time spent forprocessing the service request by the plurality of edge computingdevices exceeds a maximum time allowed for completion of processing ofthe service request; if the delayed module is identified, the pluralityof edge computing devices are interacted to each other without a controlof a central system to be configured to: determine if an instance forthe delayed module can be created on the edge computing device havingthe delayed module by monitoring an available resource of the delayedmodule, wherein the available resource is at least one selected from thegroup consisting of an available memory, an available processing time,an available storage capacity; additionally execute the delayed moduleby the created instance if the edge computing device having the delayedmodule has the available resource to create the instance; determine acandidate edge computing device to execute the delayed module based onnetwork latency if the edge computing device having the delayed moduledoes not have the available resource to create the instance; determineif the candidate edge computing device has an available resource to beexecutable; execute the delayed module on the determined candidate edgecomputing device if the candidate edge computing device has theavailable resource; and execute the delayed module on the cloud serverif none of the plurality of edge computing devices has the availableresource; and if the total time spent exceeds the maximum time, theplurality of edge computing devices are interacted to each other withouta control of a central system to be configured to: identify a firstmissing module which is not executed at the first edge computing device,a second missing module which is not executed at the first-selected edgecomputing device, and a third missing module which is not executed atthe second-selected edge computing device; determine whether the firstedge computing device has available resource to execute the firstmissing module, whether the first-selected edge computing device hasavailable resource to execute the second missing module, and whether thesecond-selected edge computing device has available resource to executethe third missing module; execute the first missing module on the firstedge computing device if the first edge computing device is determinedto have the available resource, execute the second missing module on thefirst-selected edge computing device if the first-selected edgecomputing device is determined to have the available resource, andexecute the third missing module on the second-selected edge computingdevice if the second-selected edge computing device is determined tohave the available resource; and execute at least one of the first,second and third missing modules on the cloud server if none of thefirst edge computing device, the first-elected computing device and thesecond-selected computing device have the available resource.
 2. Amethod for controlling a plurality of edge computing devices physicallyspaced from and wireless-connected to each other to process a servicerequest and connecting a user device and a cloud, each edge computingdevice comprising an application module execution unit to executefunction modules comprising a first function module and a secondfunction module, a controller to control the application moduleexecution unit, a communication unit to communicate with the other edgecomputing devices and a storage unit to store executable files of thefunction modules, the method comprising: receiving the service requestat a first edge computing device among the plurality of edge computingdevices, the service request being to be processed through a pluralityof processes comprising a first process and then a second process;first-selecting, by the first edge computing device having a routingtable that indicates function modules executed on each of the pluralityof edge computing devices, an edge computing device having the firstfunction module which is indicated as being executed on the routingtable, among the plurality of edge computing devices, wherein, when morethan one edge computing devices have the first function modules whichare indicated as being executed on the routing table, the edge computingdevice having the lowest network latency from the first edge computingdevice is selected; performing the first process at the first functionmodule of the first-selected edge computing device; second-selecting, bythe first selected edge computing device, an edge computing devicehaving the second function module which is indicated as being executedon the routing table, among the plurality of edge computing devices,wherein, when more than one edge computing devices have the secondfunction modules which are indicated as being executed on the routingtable, the edge computing device having the lowest network latency fromthe first-selected edge computing device is selected; transmitting theservice request and a first processed result from the first-selectededge computing device to the second-selected edge computing device;performing the second process at the second function module of thesecond-selected edge computing device; identifying a delayed module bydetermining that a processing time to complete the first process and aprocessing time to complete the second process is over a preset timeallowed for processing the first process and a preset time allowed forprocessing the second process, respectively, and determining that atotal time spent for processing the service request by the plurality ofedge computing devices exceeds a maximum time allowed for completion ofprocessing of the service request; when the delayed module isidentified, the service request is processed by: determining if aninstance for the delayed module can be created on the edge computingdevice having the delayed module by monitoring an available resource ofthe delayed module, wherein the available resource is at least oneselected from the group consisting of an available memory, an availableprocessing time, an available storage capacity; when the edge computingdevice having the delayed module has the available resource to createthe instance, additionally executing the delayed module by the createdinstance; when the edge computing device having the delayed module doesnot have the available resource to create the instance, determining acandidate edge computing device to execute the delayed module based onnetwork latency; determining if the candidate edge computing device hasan available resource to be executable; executing the delayed module onthe determined candidate edge computing device when the candidate edgecomputing device has the available resource; and executing the delayedmodule on the cloud server when none of the plurality of edge computingdevices has the available resource; and when the total time spentexceeds the maximum time, the service request is processed by:identifying a first missing module which is not executed at the firstedge computing device, a second missing module which is not executed atthe first-selected edge computing device, and a third missing modulewhich is not executed at the second-selected edge computing device;determining whether the first edge computing device has availableresource to execute the first missing module, whether the first-selectededge computing device has available resource to execute the secondmissing module, and whether the second-selected edge computing devicehas available resource to execute the third missing module; executingthe first missing module on the first edge computing device when thefirst edge computing device is determined to haw the available resource,executing the second missing module on the first-selected edge computingdevice when the first-selected edge computing device is determined tohave the available resource, and executing the third missing module onthe second-selected edge computing device when the second-selected edgecomputing device is determined to have the available resource; andexecuting at least one of the first, second and third missing modules onthe cloud server if none of the first edge computing device, thefirst-elected computing device and the second-selected computing devicehave the available resource, wherein the method is performed byinteraction among the plurality of edge computing devices without acentral system controlling the plurality of edge computing devices. 3.The method of claim 2, wherein the additional execution of the firstfunction module comprises updating, by the first edge computing device,the routing table.
 4. The method of claim 2, wherein the first-selectededge computing device is the first edge computing device.